package com.pucong.gitee.database.backup.business.service.util;

import com.pucong.gitee.database.backup.business.service.vo.ServiceFileVo;

import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

public interface FileOperationService {

    /**
     * 获取子文件结构
     *
     * @param path
     * @return
     */
    List<ServiceFileVo> getFileServerCatalogue(String path);

    /**
     * 上传文件
     * @param filePath
     * @param inputStream
     * @param outputPath
     * @param fileName
     * @return
     */
    boolean uploadFile(String filePath, InputStream inputStream, String outputPath, String fileName);

    /**
     * 新增目录
     *
     * @param filePath
     * @param addName
     * @return
     */
    boolean addCatalogue(String filePath, String addName);

    /**
     * 删除文件
     *
     * @param filePath
     * @return
     */
    boolean deleteFile(String filePath);

    /**
     * 删除目录
     *
     * @param filePath
     * @return
     */
    boolean deleteCatalogue(String filePath);


    /**
     * 下载文件
     *
     * @param filePath
     * @return
     */
    void downloadFile(OutputStream out, String filePath);

    /**
     * 预览文件
     * @param out
     * @param filePath
     */
    void lookFile(OutputStream out, String filePath);

    /**
     * 关闭连接
     */
    void close();
}